package org.eiahe.hr.training.service;

import org.eiahe.hr.training.domain.vo.HrTrainingMaterialVo;
import org.eiahe.hr.training.domain.bo.HrTrainingMaterialBo;
import org.ehe.common.mybatis.core.page.PageQuery;
import org.ehe.common.mybatis.core.page.TableDataInfo;

import java.util.Collection;
import java.util.List;

/**
 * 培训课件Service接口
 *
 * @author zhangnn
 */
public interface IHrTrainingMaterialService {

    /**
     * 查询培训课件
     */
    HrTrainingMaterialVo queryById(Long materialId);

    /**
     * 查询培训课件列表
     */
    TableDataInfo<HrTrainingMaterialVo> queryPageList(HrTrainingMaterialBo bo, PageQuery pageQuery);

    /**
     * 查询培训课件列表
     */
    List<HrTrainingMaterialVo> queryList(HrTrainingMaterialBo bo);

    /**
     * 新增培训课件
     */
    Boolean insertByBo(HrTrainingMaterialBo bo);

    /**
     * 修改培训课件
     */
    Boolean updateByBo(HrTrainingMaterialBo bo);

    /**
     * 批量删除培训课件
     */
    Boolean deleteByIds(Collection<Long> materialIds);

    /**
     * 增加查看次数
     */
    void increaseViewCount(Long materialId);

    /**
     * 增加下载次数
     */
    void increaseDownloadCount(Long materialId);

    /**
     * 根据部门权限查询课件列表(员工端)
     */
    List<HrTrainingMaterialVo> queryByDeptPermission(Long deptId);

}
